#include<stdio.h>

// 1. 访问内存，指针 约等于 数组
// 2. 差别——数组名的地址固定，指针的值变化
// 3. 指针的值=地址

typedef struct pointer
{
    int x,y;
} pointer;

int main()
{
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};

    // 指针的使用一定含义*或者&
    int a = 10;
    // &是获取后面变量名的地址
    int *p = &a;
    printf("指针的值:%d,地址:%d\n", *p, p);

    // 修改
    *p = 20;
    printf("修改后的:%d,地址:%d\n", *p, a);
    // 指针运算
    int *p1 = arr;
    printf("p:%d\n", *p1);
    p1++;
    printf("p++:%d\n", *p1);

    // 结构体指针
    pointer *p_struct;
    p_struct->x = 3;
    p_struct->y = 5;
    printf("结构体指针的(x,y):(%d,%d),地址:%d\n", p_struct->x, p_struct->y, p_struct);

}